#ifndef WIDGET_H
#define WIDGET_H

#include "endwidget.h"
#include <QWidget>
#include<QKeyEvent>
#include<QTimer>
#include<QPainter>
#include<QPaintEvent>
#include<QPixmap>
#include<QTime>
#include<QLabel>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

//当前移动方向
enum Direct
{
    LEFT,RIGHT,UP,DOWN
};


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void keyPressEvent(QKeyEvent* event);
    void addup();
    void adddown();
    void addleft();
    void addright();
    void deletelast();
    void addfruit();
    void addafruit();

    void paintEvent(QPaintEvent *event);

    QPushButton* bt;

private:
    Ui::Widget *ui;

    int dir=DOWN;
    bool gamestate=false;

    //定时器
    QTimer *timer;
    double outime=200;//超时时间（毫秒）
    //蛇
    QList<QRectF> snake;
    int length=20;
    //果实
    QRectF fruit;
    QRectF afruit;
    //得分
    int score=0;

    //蛇是否咬到自己
    bool snakestate;
    void crash();

public:
    //结束窗口
    endwidget* e=new endwidget;

    //显示分数的标签
    QLabel* scorelabel1=new QLabel(this);
    QLabel* scorelabel2=new QLabel(this);

public slots:
    void timeout();
};
#endif // WIDGET_H
